import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    meta: {
      title: '工具类网站 - 在线工具集合',
      keywords: '在线工具,工具网站,开发工具,实用工具',
      description: '基于Vite + Vue3开发的在线工具集合网站，提供JSON格式化、代码美化、图像处理、加密解密、Excel处理等多种实用工具'
    }
  },
  {
    path: '/tools/json-format',
    name: 'JsonFormat',
    component: () => import('../views/tools/JsonFormat.vue'),
    meta: {
      title: 'JSON格式化工具 - 在线JSON格式化器',
      keywords: 'JSON格式化,JSON验证,JSON编辑器,JSON美化,JSON工具',
      description: '在线JSON格式化工具，支持树形结构展示和实时双向编辑，格式化、验证、美化JSON数据'
    }
  },
  {
    path: '/tools/code-beautify',
    name: 'CodeBeautify',
    component: () => import('../views/tools/CodeBeautify.vue'),
    meta: {
      title: '代码美化工具 - 在线代码格式化器',
      keywords: '代码美化,代码格式化,HTML格式化,CSS格式化,JavaScript格式化',
      description: '在线代码美化工具，支持HTML、CSS、JavaScript等代码的格式化美化，提高代码可读性'
    }
  },
  {
    path: '/tools/image-compress',
    name: 'ImageCompress',
    component: () => import('../views/tools/ImageCompress.vue'),
    meta: {
      title: '图像压缩工具 - 在线图片压缩器',
      keywords: '图片压缩,图像压缩,图片压缩工具,图片优化,无损压缩',
      description: '在线图像压缩工具，支持无损压缩图片，减小文件体积，保持图片质量'
    }
  },
  {
    path: '/tools/image-convert',
    name: 'ImageConvert',
    component: () => import('../views/tools/ImageConvert.vue'),
    meta: {
      title: '图像格式转换工具 - 在线图片格式转换器',
      keywords: '图片格式转换,图像格式转换,JPG转PNG,PNG转JPG,WebP转换',
      description: '在线图像格式转换工具，支持JPG、PNG、WebP等常见图片格式之间的相互转换'
    }
  },
  {
    path: '/tools/encrypt',
    name: 'Encrypt',
    component: () => import('../views/tools/Encrypt.vue'),
    meta: {
      title: '加密解密工具 - 在线加密解密器',
      keywords: '加密工具,解密工具,MD5,SHA,AES加密,RSA加密,在线加密',
      description: '在线加密解密工具，支持MD5、SHA、AES、RSA等多种加密算法，保护您的敏感信息'
    }
  },
  {
    path: '/tools/excel-viewer',
    name: 'ExcelViewer',
    component: () => import('../views/tools/ExcelViewer.vue'),
    meta: {
      title: 'Excel数据分配器 - 在线Excel查看器',
      keywords: 'Excel查看器,Excel工具,Excel数据处理,Excel字段统计,在线Excel',
      description: '在线Excel数据分配器，上传Excel文件查看数据，支持字段统计和数据处理'
    }
  },
  {
    path: '/tools/logo-to-ico',
    name: 'LogoToIco',
    component: () => import('../views/tools/LogoToIco.vue'),
    meta: {
      title: 'Logo转ICO工具 - 在线图标转换器',
      keywords: 'ICO转换,Logo转ICO,PNG转ICO,JPG转ICO,图标转换',
      description: '在线Logo转ICO工具，支持PNG、JPG、SVG等常见格式转换为ICO图标格式'
    }
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

// 路由守卫：自动更新SEO meta标签
router.beforeEach((to, from, next) => {
  // 更新title
  if (to.meta.title) {
    document.title = to.meta.title
  }
  
  // 更新keywords
  let keywordsMeta = document.querySelector('meta[name="keywords"]')
  if (!keywordsMeta) {
    keywordsMeta = document.createElement('meta')
    keywordsMeta.setAttribute('name', 'keywords')
    document.head.appendChild(keywordsMeta)
  }
  keywordsMeta.setAttribute('content', to.meta.keywords || '工具类网站')
  
  // 更新description
  let descriptionMeta = document.querySelector('meta[name="description"]')
  if (!descriptionMeta) {
    descriptionMeta = document.createElement('meta')
    descriptionMeta.setAttribute('name', 'description')
    document.head.appendChild(descriptionMeta)
  }
  descriptionMeta.setAttribute('content', to.meta.description || '工具类网站')
  
  next()
})

export default router